package com.flyan.game.motafx.core.util.position;

import com.flyan.game.motafx.config.GameConfig;
import com.flyan.game.motafx.core.map.MapPosition;
import javafx.geometry.Point2D;

/**
 * 位置实用工具
 *
 * @author flyan
 * @version 1.0
 * @email flyan_by_chenu@sina.com
 * @since 2025/1/31
 */
public class PositionUtils {

    private PositionUtils() {  }

    /**
     * 获取地图上的位置坐标
     *
     * @param row 行号，从第一行开始
     * @param col 列号，从第一列开始
     * @return 位置坐标
     */
    public static Point2D getMapPosition(int row, int col) {
        return getMapPosition(new MapPosition(row, col));
    }

    /**
     * 获取地图上的位置坐标
     *
     * @param position  地图位置
     * @return 位置坐标
     */
    public static Point2D getMapPosition(MapPosition position) {
        if (!position.isCorrect()) {
            return null;
        }

        return new Point2D(
                GameConfig.MAP_BEGIN_COORDINATE.getX() + ((position.col() - 1) * GameConfig.GRID_SIZE),
                GameConfig.MAP_BEGIN_COORDINATE.getY() + ((position.row() - 1) * GameConfig.GRID_SIZE)
        );
    }

}
